package org.reborn

import org.reborn.model.TileLOD._

object Constants {
  /**
   * The name of the application
   */
  val APP_NAME = "ReBorn"
  
  /**
   * This is the length (in feet) of the smallest tile that can be displayed
   */
  val TILE_LENGTH = 10.0f
  
  /**
   * Half the length (in feet) of the smallest tile that can be displayed
   */
  val HALF_TILE_LENGTH = TILE_LENGTH / 2.0f

  /**
   * Map containing all of the LOD levels mapped to their indexes
   */
  val LOD_INDEX = Map(High->0, Medium->1, Low->2, Lower->3, Lowest->4)
  
  /**
   * Map containing all of the LOD levels mapped by their indexes
   */
  val INDEX_LOD = Map(0->High, 1->Medium, 2->Low, 3->Lower, 4->Lowest)
  
  /**
   * The number of Tiles that the world is comprized of in
   * the x and y axes, for the given LOD
   */
  val WORLD_LENGTH = Map(High->1024, Medium->512, Low->256, Lower->128, Lowest->64)
  
  val DISPLAYABLE_BIG_TILES = 63
  
  /**
   * The number of tiles of the given TileLOD that it takes to make up a tile
   * of the Largest TileLOD length
   */
  val TILES_PER_BIG_TILE_LENGTH = Map(High->16, Medium->8, Low->4, Lower->2, Lowest->1)
  
  /**
   * The number of tiles of the smallest TileLOD that it takes to make up a tile
   * of the given TileLOD length
   */
  val SMALL_TILES_PER_TILE_LENGTH = Map(High->1, Medium->2, Low->4, Lower->8, Lowest->16)
  
}
